import axios from 'axios'

import qs from 'qs'

axios.defaults.baseURL = 'http://www.520gongfu.com:9527/api/'

// 添加请求拦截器
axios.interceptors.request.use(function (config) {
    // console.log('config:', config);
    // 设置 请求 token 校验
    const token = sessionStorage.getItem('token')
    if (token) {
        config.headers['Authorization'] = token
    }
    // 在发送请求之前做些什么
    return config;
}, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
});

// 获取轮播图
export const getSliders = (callback) => {
    axios.get('home/sliders')
        .then(function (response) {
            callback && callback(
                response.data,
                // console.log('----response-----', response)
            )
        })
        .catch(function (error) {
            console.log(error);
        })
}

// 获取首页导航分类
export const getCategory = (callback) => {
    axios.get('home/category')
        .then(function (response) {
            callback && callback(
                response.data
            )
        })
        .catch(function (error) {
            console.log(error);
        })
}

// 获取首页商品数据
export const getFloorList = (callback) => {
    axios.get('home/floorlist')
        .then(function (response) {
            callback && callback(
                // console.log(response),
                response.data
            )
        })
        .catch(function (error) {
            console.log(error);
        })
}

// 获取分类数据
export const getData = (callback) => {
    axios.get('category/data')
        .then(function (response) {
            callback && callback(
                // console.log(response),
                response.data
            )
        })
        .catch(function (error) {
            console.log(error);
        })
}


// 登录请求
export const login = (params, callback) => {
    return axios.post('user/login', qs.stringify(params))
        .then(res => {
            const { data } = res
            callback && callback(data)
        }).catch(err => {
            console.log(err);
        })
}

// 获取用户信息
export const getUserInfo = (callback) => {
    return axios.get('user/info')
        .then(res => {
            callback && callback(res.data)
        }).catch(err => {
            console.log(err);
        })
}


// 获取商品列表
export const getProductList = (params, callback) => {
    axios.get('product/list', {
        params: params,
        // 表单形式
        paramsSerializer: function (params) {
            return qs.stringify(params)
        }
    }).then(res => {
        callback && callback(res.data)
    }).catch(function (error) {
        console.log(error);
    })


}

// 获取商品详情
export const getProductDetail = (params, callback) => {
    return axios.get('product/detail', { params })
        .then(res => {
            // console.log(res);
            callback && callback(res.data)
        }).catch(err => {
            console.log(err);
        })

}

// 获取商品详情
export const getRecommendData = (callback) => {
    axios.get('product/recommend')
        .then(res => {
            // console.log(res);
            callback && callback(res.data)
        }).catch(err => {
            console.log(err);
        })
}


// 获取购物车数据
export const getCartList = (callback) => {
    axios.get('cart/list')
        .then(res => {
            // console.log(res);
            callback && callback(res.data)
        }).catch(err => {
            console.log(err);
        })
}

// 推荐商品
export const getRecommend = (callback) => {
    return axios.get('product/recommend')
        .then(res => {
            callback && callback(res.data)
        }).catch(err => {
            console.log(err);
        })
}


// 删除购物车数据
export const deleteCartItem = (params, callback) => {
    return axios.post('cart/del', qs.stringify(params))
        .then(res => {
            callback && callback(res.data)
        }).catch(err => {
            console.log(err);
        })
}

// 添加购物车数据 点击 加号
export const cartAdd = (params, callback) => {
    return axios.post('cart/add', qs.stringify(params))
        .then(res => {
            callback && callback(res.data)
        }).catch(err => {
            console.log(err);
        })
}

/*
    获取 QQ 授权信息之后 
    获取 当前 应用的登录授权 token
*/

export const getUserQQlogin = (params, callback) => {
    return axios.post('/user/qqlogin', qs.stringify(params)).then(res => {
        callback && callback(res.data)
    }).catch(err => {
        console.log(err);
    })
}

// 获取QQ 授权的信息
export const getUserQQinfo = (params, callback) => {
    return axios.get('/user/qqinfo', {
        params: params,
        paramsSerializer: function (params) {
            return qs.stringify(params)
        }
    }).then(res => {
        callback && callback(res.data)
    }).catch(err => {
        console.log(err);
    })
}